package com.ls.controller.template;


import com.ls.controller.customer.model.RegisterCustomerModel;
import com.ls.controller.template.model.AddTemplateModel;
import com.ls.controller.template.model.AuditTemplateModel;
import com.ls.controller.template.model.EditTemplateModel;
import com.ls.controller.template.model.QueryTemplateModel;
import com.ls.entity.SysUser;
import com.ls.service.ICustomerService;
import com.ls.service.ISmsTemplateService;
import com.ls.utils.ResultData;
import com.ls.utils.login.CurrentUser;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*;

import org.springframework.stereotype.Controller;

import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;

/**
 * <p>
 * 短信模板 前端控制器 WEB 端
 * </p>
 *
 * @author pengyu
 * @since 2024-06-28
 */
@Slf4j
@RestController
@RequestMapping("/smsTemplate")
@RequiredArgsConstructor
public class SmsTemplateController {

    private final ISmsTemplateService service;

    /** 新增短信模板  */
    @PostMapping("add")
    public ResultData add(@Valid @RequestBody AddTemplateModel model) {
        return service.add(model);
    }
    /** 更新短信模板  */
    @PostMapping("edit")
    public ResultData edit(@Valid @RequestBody EditTemplateModel model) {
        return service.update(model);
    }
    /**
     * 查询短信模板分页列表
     */
    @GetMapping("pageList")
    public ResultData pageList(QueryTemplateModel model) {
        return service.pageList(model);
    }

    /**
     * 审核短信模板
     */
    @PostMapping("audit")
    public ResultData audit(@Valid @RequestBody AuditTemplateModel model) {
        return service.audit(model);
    }
    /** 删除短信模板 */
    @PostMapping("del")
    public ResultData del(@RequestParam @NotNull(message = "模板id不得为空") Long templateId) {
        log.info("删除短信模板：{}", templateId);
        return service.del(templateId);
    }

    /**
     * 查询短信模板统计
     */
//    @GetMapping("summary")
//    public ResultData summary() {
//        return service.summary();
//    }


    /**
     * 导出 短信模板 阿里的工具类好像有更优化的方式
     * @ApiOperation(value = "导出企业列表")
     */
    @PostMapping(value = "export")
    @ResponseBody
    public void export(@Valid @RequestBody QueryTemplateModel model, HttpServletResponse response) {
        service.export(model, response);
    }
}

